SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

CREATE PROCEDURE [dbo].[SP_TWPROV_TESO_I01]                   
/*---------------------------------------------------------*/                        
/*---Empresa              : OFISIS S.A.                  --*/                        
/*---Cliente              : OFISIS S.A.                  --*/                        
/*---Sistema              : Tesoreria                    --*/                        
/*---Modulo               : Empresa                      --*/                        
/*---Programa             : Procedimiento para insertar   --*/                        
/*---                       documentos clientes a tempo  --*/                              
/*---Script               : ttproc_i.sql                 --*/                        
/*---Nombre SP            : SP_TWDOCU_CLIE_I01           --*/                        
/*---Desarrollado por     : Carlos Marquez Escobar       --*/                        
/*---Fecha Creaci¸n       : 03/03/2006                   --*/                        
/*---Base Datos           : Microsoft Sql Server         --*/                        
/*---Version              : 8.0                          --*/                        
/*---Invoca a SP          :                              - -*/                        
/*---------------------------------------------------------*/                     
/*---------------------------------------------------------*/                        
/*---Comentarios                                         --*/                        
/*---                                                    --*/                        
/*---------------------------------------------------------*/                       
@ISCO_EMPR   TD_VC_002,                            
@ISCO_USUA_MODI  TD_VC_008_USUA ,                     
@ISCO_UNID  TD_VC_003                  
As                      
            
Declare                        
@CNNU_FILA  TD_IN_001,                      
@CSCO_PROV  TD_VC_020,                      
@CSCO_TIPO_PROV TD_VC_003,                      
@CSAP_PATE_PROV TD_VC_020,                      
@CSAP_MATE_PROV TD_VC_020,                      
@CSNO_NATU_0001 TD_VC_020,                      
@CSNO_NATU_0002 TD_VC_020,                      
@CSNO_RAZO_SOCI TD_VC_100,                      
@CSTI_NATU_JURI TD_VC_001,                      
@CSST_RETE  TD_VC_001,                      
@CSST_BCON  TD_VC_001,                      
@CSST_PERC  TD_VC_001,            
@CSCO_CATE  TD_VC_003,
@CSST_HABI  TD_VC_001,   
        
                    
                   
@VSCO_PROV   TD_VC_020,                      
@VSCO_TIPO_PROV  TD_VC_003,                      
@VSAP_PATE_PROV   TD_VC_020,                      
@VSAP_MATE_PROV   TD_VC_020,                      
@VSNO_NATU_0001   TD_VC_020,                      
@VSNO_NATU_0002   TD_VC_020,                      
@VSNO_RAZO_SOCI   TD_VC_100,                      
@VSTI_NATU_JURI   TD_VC_001,                      
@VSST_RETE   TD_VC_001,                      
@VSST_BCON   TD_VC_001,                      
@VSST_PERC   TD_VC_001,   
         
            
@VSST_LOGI   TD_VC_001,            
            
@VNNU_ERRO TD_IN_001            
                     
                     
Begin Tran SP_TWPROV_TESO_I01                        
                        
DELETE #TWPROV_ERRO_02            
                
Select  @VSST_LOGI = ST_LOGI            
From TMPARA_TESO                      
Where CO_EMPR = @ISCO_EMPR                    
                        
Declare CU_TWPROV_TESO_I01 Cursor For                        
SELECT NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV, NO_NATU_0001, NO_NATU_0002,            
NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC , CO_CATE ,  ST_HABI   
FROM #TWPROV_ERRO_01                          
                       
                       
Open  CU_TWPROV_TESO_I01                         
Fetch CU_TWPROV_TESO_I01                         
Into  @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV, @CSNO_NATU_0001, @CSNO_NATU_0002,            
@CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,@CSCO_CATE , @CSST_HABI 
                        
While (@@FETCH_STATUS = 0)                          
 Begin                          
   If (@@FETCH_STATUS < 0)                          
    Begin                          
     RAISERROR 20001 'FIN DE ARCHIVO'                          
  Close CU_TWPROV_TESO_I01                          
  Deallocate CU_TWPROV_TESO_I01                          
  Rollback tran                          
  Return                          
 End                          
                
----INICIALIZACIONES                        
 select @VSCO_PROV  = NULL                 
                    
  SELECT @VNNU_ERRO = 0;                  
                
            
  -------VALIDACIONES -------             
           
 IF @VSST_LOGI = 'S'            
 BEGIN                     
  ---  PROVEEDOR  ---                    
  IF EXISTS ( SELECT CO_PROV          
  FROM  TMPROV                    
  WHERE CO_EMPR = @ISCO_EMPR                     
  and CO_PROV = LTRIM( RTRIM(@CSCO_PROV))            
  AND TI_SITU != 'ANU' )      
    
    

            
   INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,            
   'CÓDIGO DE PROVEEDOR YA EXISTE' )                    
               
 END            
 ELSE IF @VSST_LOGI = 'N'            
 BEGIN                     
  ---  PROVEEDOR  ---                    
  IF EXISTS ( SELECT CO_PROV           
  FROM  TMPROV_TESO            
  WHERE CO_EMPR = @ISCO_EMPR                     
  and CO_PROV = LTRIM( RTRIM(@CSCO_PROV))            
  AND TI_SITU != 'ANU' )            
            
   INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,            
   'CÓDIGO DE PROVEEDOR YA EXISTE' )                    
 END            
         
             
   IF ISNULL(@CSCO_PROV,'') = ''                    
            
   INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,            
   'CÓDIGO DE PROVEEDOR NO PUEDE SER NULO' )           
           
           
   IF LEN(LTRIM(RTRIM(@CSCO_PROV))) > 11  OR  LEN(LTRIM(RTRIM(@CSCO_PROV))) < 11                   
              
   INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,              
   'LOGINTUD CÓDIGO DE PROVEEDOR NO PUEDE SER MAYOR O MENOR A DIGITOS 11' )              
            
                       
   ------------- CATEGORIA PROVEEDOR -------------                    
   IF @VSST_LOGI = 'S'            
 BEGIN                     
  --- CATEGORIA PROVEEDOR  ---                    
  IF NOT EXISTS ( SELECT TI_PROV  FROM  OFILOGI..TTTIPO_PROV          
  WHERE TI_PROV = @CSCO_TIPO_PROV )            
            
   INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,           
   'CÓDIGO DE CATEGORIA PROVEEDOR NO EXISTE' )        
   
   IF NOT  EXISTS (  SELECT * FROM OFILOGI.dbo.TTCATE_PROV 
    WHERE CO_CATE = @CSCO_CATE ) 
           
   INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,           
   'CODIGO DE CATEGORIA NO EXISTE' )
   
  IF ISNULL(@CSCO_CATE,'') = ''                    
   BEGIN                    
               
    INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
    NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
    VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
    @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,            
    'CODIGO DE CATEGORIA NO PUEDE SER NULO' )            
                
   END    							 
    
                   
 END            
  ELSE IF @VSST_LOGI = 'N'            
 BEGIN                     
  --- CATEGORIA PROVEEDOR  ---                    
  IF NOT EXISTS (  SELECT CO_TIPO_PROV  FROM  OFITESO..TTTIPO_PROV          
  WHERE CO_TIPO_PROV = @CSCO_TIPO_PROV )         
            
  INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,            
   'CÓDIGO DE CATEGORIA PROVEEDOR NO EXISTE' )                    
 END            
             
 IF ISNULL(@CSCO_TIPO_PROV,'') = ''                    
            
   INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,            
   'CÓDIGO DE CATEGORIA PROVEEDOR NO PUEDE SER NULO' )            
            
  IF @CSTI_NATU_JURI = 'N'            
   BEGIN                   
  ------------------ APELLIDO PATERNO ----------------------                    
   IF ISNULL(@CSAP_PATE_PROV,'') = ''                    
   BEGIN                    
               
    INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
    NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
    VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
    @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,            
    'APELLIDO PATERNO NO PUEDE SER NULO' )            
                
   END                    
   ELSE IF LEN(LTRIM(RTRIM(@CSAP_PATE_PROV))) > 20            
   BEGIN                    
            
    INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,            
    'LONGITUD APELLIDO PATERNO NO PUEDE EXCEDER DE 20 CARACTERES ' )             
                      
   END                        
               
               
  ------------------ APELLIDO MATERNO ----------------------                    
   IF ISNULL(@CSAP_MATE_PROV,'') = ''                    
   BEGIN                    
               
   INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,           
    'APELLIDO MATERNO NO PUEDE SER NULO' )            
                
   END                    
   ELSE IF LEN(LTRIM(RTRIM(@CSAP_MATE_PROV))) > 20            
   BEGIN                    
            
   INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,            
    'LONGITUD APELLIDO MATERNO NO PUEDE EXCEDER DE 20 CARACTERES ' )             
                      
   END              
               
  ------------------ PRIMER NOMBRE ----------------------                    
   IF ISNULL(@CSNO_NATU_0001,'') = ''                    
   BEGIN                    
               
    INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,             
    'PRIMER NOMBRE NO PUEDE SER NULO' )            
                
   END           
   ELSE IF LEN(LTRIM(RTRIM(@CSNO_NATU_0001))) > 20            
   BEGIN                    
            
    INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,            
    'LONGITUD PRIMER NOMBRE NO PUEDE EXCEDER DE 20 CARACTERES ' )             
                      
   END             
               
   ------------------ SEGUNDO NOMBRE ----------------------                    
   IF LEN(LTRIM(RTRIM(@CSNO_NATU_0002))) > 20            
   BEGIN                    
            
    INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,            
    'LONGITUD SEGUNDO NOMBRE NO PUEDE EXCEDER DE 20 CARACTERES ' )             
                      
   END            
   END            
               
 ELSE IF @CSTI_NATU_JURI = 'J'            
  BEGIN            
  ------------------ RAZON SOCIAL ----------------------                    
   IF ISNULL(@CSNO_RAZO_SOCI,'') = ''                    
   BEGIN                    
               
    INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,            
    'RAZON SOCIAL NO PUEDE SER NULO' )            
                
   END                    
   ELSE IF LEN(LTRIM(RTRIM(@CSNO_RAZO_SOCI))) > 50            
   BEGIN                    
            
   INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,           
   'LONGITUD RAZON SOCIAL NO PUEDE EXCEDER DE 50 CARACTERES ' )             
                      
   END              
 END            
              
 ------------------ TIPO PROVEEDOR ----------------------                    
  IF ISNULL(@CSTI_NATU_JURI,'') = ''                    
  BEGIN                    
              
   INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,           
   'TIPO PROVEEDOR NO PUEDE SER NULO' )            
               
  END                    
  ELSE IF LTRIM(RTRIM(@CSTI_NATU_JURI)) NOT IN ('N','J')          
  BEGIN                    
            
   INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,            
   'TIPO PROVEEDOR SOLO PUEDE SER N (NATURAL) o J (JURIDICO) ' )             
                     
  END              
              
 ------------------ ESTADO AGENTE RETENEDOR ----------------------                    
  IF ISNULL(@CSST_RETE,'') = ''                    
  BEGIN                    
              
   INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,            
   'ESTADO AGENTE RETENEDOR NO PUEDE SER NULO' )            
               
  END                    
  ELSE IF LTRIM(RTRIM(@CSST_RETE)) NOT IN ('N','S')          
  BEGIN                    
           
          
           
   INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,            
   'ESTADO AGENTE RETENEDOR SOLO PUEDE SER N o S ' )             
                     
  END            
            
 ------------------ ESTADO BUEN CONTRIBUYENTE ----------------------                    
  IF ISNULL(@CSST_BCON,'') = ''                    
  BEGIN                    
              
   INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,            
   'ESTADO BUEN CONTRIBUYENTE NO PUEDE SER NULO' )            
               
  END                    
  ELSE IF LTRIM(RTRIM(@CSST_BCON)) NOT IN ('N','S')          
  BEGIN        
            
   INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,             
   'ESTADO BUEN CONTRIBUYENTE SOLO PUEDE SER N o S ' )             
                     
  END            
              
 ------------------ ESTADO AGENTE PERCEPCION ----------------------                    
  IF ISNULL(@CSST_PERC,'') = ''                    
  BEGIN                    
              
   INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,             
   'ESTADO AGENTE PERCEPCION NO PUEDE SER NULO' )            
               
  END                    
  ELSE IF LTRIM(RTRIM(@CSST_PERC)) NOT IN ('N','S')          
  BEGIN                    
            
   INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,         
   'ESTADO AGENTE PERCEPCION SOLO PUEDE SER N o S ' )             
                     
  END            
            
 ------------------ REGISTRO DUPLICADO ----------------------                    
            
   IF EXISTS ( SELECT  COUNT(*)            
 FROM #TWPROV_ERRO_01            
 WHERE CO_PROV = @CSCO_PROV              
 HAVING COUNT(*)>1)                  
   INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,           
   'REGISTRO DUPLICADO ' )             
   
  -------------ST_HABI ----------------------
  
  IF LTRIM(RTRIM(@CSST_HABI)) NOT IN ('S','N')          
  BEGIN                    
            
  INSERT INTO #TWPROV_ERRO_02( NU_FILA, CO_PROV, CO_TIPO_PROV, AP_PATE_PROV, AP_MATE_PROV,              
   NO_NATU_0001, NO_NATU_0002, NO_RAZO_SOCI, TI_NATU_JURI, ST_RETE, ST_BCON, ST_PERC, DE_ERRO )                     
   VALUES ( @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV,            
   @CSNO_NATU_0001, @CSNO_NATU_0002, @CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,            
   'VALOR DEL FLAG DE HABILITACION SOLO PUEDE SER "S" O "N" ' )             
                     
  END              
            
                  
            
                  
Fetch  CU_TWPROV_TESO_I01                         
Into  @CNNU_FILA, @CSCO_PROV, @CSCO_TIPO_PROV, @CSAP_PATE_PROV, @CSAP_MATE_PROV, @CSNO_NATU_0001, @CSNO_NATU_0002,            
@CSNO_RAZO_SOCI, @CSTI_NATU_JURI, @CSST_RETE, @CSST_BCON, @CSST_PERC,@CSCO_CATE, @CSST_HABI             
                    
End                    
                    
Close CU_TWPROV_TESO_I01                        
Deallocate CU_TWPROV_TESO_I01                        
                    
                    
Commit Tran SP_TWPROV_TESO_I01
GO
